Scrapbox ChatGPT Connectorの仕組み
1 Scrapbox jsonの各行を「埋め込みベクトル」に変換する
埋め込みベクトルとは「数字列」くらいの認識で良い
(実際は、この数字列から元の行内容を取り出すために (行内容, 数字列) という対応で保存している)
要はプログラムが扱えるように文章データを数値データに変えている
2 1を全部実施すると、埋め込みベクトルの配列が出来上がる
3 プロンプトも埋め込みベクトルにする
4 3と2の類似度を計算し、2を「似ている順」でソート
これの上位を取り出して、プロンプトとする
ChatGPTに入力できるプロンプトには上限があるのでこうして絞らないといけない。ここでは「最も似ている行ベストn」を採用しているsta.icon
内部的には高度なことをやっているのだろうが、このconnectorはほぼOpenAI APIを呼び出しているだけ 類似度計算に数学の知識(内積、コサイン類似度と言っている)は使っているようだが